/**
 * 自定义过滤器
 * 通过Vue.filter(newFn, fn)注入全局
 * 使用方式 {{str | newFn}}
 */


/**
 * 10000 => "10,000"
 * 数字每三位逗号分隔
 */
export function toThousandFilter(num) {
  if (isNaN(num) || num == "") return ""
  return (+num).toString().replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ','))
}

/**
 * 数字千分位显示处理 
 * @params {*}  num：传值  showNullValue：是否转换null值    floatLength： 保留小数点位数
 */
export function numThousandF(num, showNullValue = true,floatLength = 2) {
  function reverseStr(str) {
    return str.split('').reverse().join('');
  }
  function replaceFn(str) {
    return str.replace(/(\d{3})(?=\d)/g, "$1,");
  }
  let newStr = null;
  if(num) {
    if(!(num.toString()).includes(".")) {
      num = (num + ".00")*1
    }
    newStr = (num*1).toFixed(floatLength);
    newStr = reverseStr(replaceFn(reverseStr(newStr.toString())));
    return newStr;
  }else {
    if(showNullValue) {
      newStr = (0.00).toFixed(floatLength);
    }
    return newStr;
  }
}